/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import dominio.Aluno;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author Nathalie.ramos
 */
public class QueryAluno implements ConstrutorQuery {

    @Override
    public String construirQuery(Object objeto) {

        Aluno aluno = (Aluno) objeto;
        boolean ja = false;
        String query = "SELECT a FROM Aluno a WHERE";

        if (!aluno.getNomeAluno().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.nomeAluno) LIKE '%" + aluno.getNomeAluno().toUpperCase() + "%'";
        }

        if (!aluno.getRg().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.rg) LIKE '%" + aluno.getRg().toUpperCase() + "%'";
        }

        if (aluno.getSexo() != -1) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.sexo = " + aluno.getSexo();
        }

        if (!aluno.getTelContato().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.telContato) LIKE '%" + aluno.getTelContato().toUpperCase() + "%'";
        }

        if (!aluno.getDataNascimento().equals(new Date(1L))) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.datanascimento = '" + getDataFormatada(aluno.getDataNascimento())+"'";
        }

        if (!aluno.getNaturalidade().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.naturalidade) LIKE '%" + aluno.getNaturalidade().toUpperCase() + "%'";
        }

        if (!aluno.getProfPai().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.profPai) LIKE '%" + aluno.getProfPai().toUpperCase() + "%'";
        }

        if (!aluno.getProfMae().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.profMae) LIKE '%" + aluno.getProfMae().toUpperCase() + "%'";
        }

        if (!aluno.getEscola().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.escola) LIKE '%" + aluno.getEscola().toUpperCase() + "%'";
        }

     if (!aluno.getTurno().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.turno) LIKE '%" + aluno.getTurno().toUpperCase() + "%'";
        }
        if (!aluno.getCidade().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.cidade) LIKE '%" + aluno.getCidade().toUpperCase() + "%'";
        }

        if (!aluno.getCpf().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.cpf) = '" + aluno.getCpf().toUpperCase() + "'";
        }

        if (!aluno.getEndContato().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.endeContato) LIKE '%" + aluno.getEndContato().toUpperCase() + "%'";
        }


        if (!aluno.getPais().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.pais) LIKE '%" + aluno.getPais().toUpperCase() + "%'";
        }

        if (!aluno.getNumRegistro().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.numRegistro) LIKE '%" + aluno.getNumRegistro().toUpperCase() + "%'";
        }

        if (!aluno.getFolha().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.folha) LIKE '%" + aluno.getFolha().toUpperCase() + "%'";
        }

        if (!aluno.getLivro().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.livro) LIKE '%" + aluno.getLivro().toUpperCase() + "%'";
        }

        if (!aluno.getCartorio().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.cartorio) LIKE '%" + aluno.getCartorio().toUpperCase() + "%'";
        }

        if (!aluno.getDataEmissao().equals(new Date(1L))) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER a.dataemissao = '" + getDataFormatada(aluno.getDataEmissao())+"'";
        }

        if (!aluno.getRespCliente().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.respCliente) LIKE '%" + aluno.getRespCliente().toUpperCase() + "%'";
        }

        if (!aluno.getRespInscricao().equals("")) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.respInscricao) LIKE '%" + aluno.getRespInscricao().toUpperCase() + "%'";
        }

        if (aluno.isSituacao() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.situacao = " + aluno.isSituacao();
        }

        if (aluno.isBolsaFamilia() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.bolsaFamilia) = " + aluno.isBolsaFamilia();
        }

        if (aluno.isPsicologica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.Psicologica) = " + aluno.isPsicologica();
        }

        if (aluno.isFisioterapica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.fisioterapica) = " + aluno.isFisioterapica();
        }

        if (aluno.isMedica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.medica) = " + aluno.isMedica();
        }

        if (aluno.isPedagogica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.pedagogica) = " + aluno.isPedagogica();
        }

        if (aluno.isFonoaudiologica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.fonoaudiologica) = " + aluno.isFonoaudiologica();
        }

        if (aluno.isPsicomotora() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.Psicomotora) = " + aluno.isPsicomotora();
        }

        if (aluno.isApoioPedagogico() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " UPPER (a.apoioPedagogico) = " + aluno.isApoioPedagogico();
        }

        if (aluno.isOfPedagogica() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.ofPedagogica = " + aluno.isOfPedagogica();
        }

        if (aluno.isEstimulacao() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.estimulacao = " + aluno.isEstimulacao();
        }

        if (aluno.isFisioterapia() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.fisioterapia = " + aluno.isFisioterapia();
        }

        if (aluno.isFonoterapia() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.fonoterapia = " + aluno.isFonoterapia();

        }

        if (aluno.isOutraEscola() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.outraEscolas = " + aluno.isOutraEscola();

        }

        if (aluno.isEdFisiEscolar() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.edFisiEscolar = " + aluno.isEdFisiEscolar();

        }

        if (aluno.isTreinaDesportivo() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.treinaDesportivo = " + aluno.isTreinaDesportivo();

        }

        if (aluno.isEsProfSevLopes() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.esProfSevLopes = " + aluno.isEsProfSevLopes();

        }

        if (aluno.isEducProfissional() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.educProfissional = " + aluno.isEducProfissional();

        }

        if (aluno.isPsicomotricidade() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.psicomotricidade = " + aluno.isPsicomotricidade();

        }

        if (aluno.isOfLinguagem() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.ofLinguagem = " + aluno.isOfLinguagem();

        }

        if (aluno.isBrinquedoteca() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.brinquedoteca = " + aluno.isBrinquedoteca();

        }

        if (aluno.isLudoterapia() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.ludoterapia = " + aluno.isLudoterapia();

        }

        if (aluno.isArtEducacao() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.artEducacao = " + aluno.isArtEducacao();

        }

        if (aluno.isVerbotonal() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.verbotonal = " + aluno.isVerbotonal();

        }

        if (aluno.isLibras() != false) {
            if (ja) {
                query = query + " AND ";
            }else{
                ja = true;
            }
            query = query + " a.libras = " + aluno.isLibras();

        }
        return query;
    }

    private String getDataFormatada(Date data ){
        SimpleDateFormat formatador1 = new SimpleDateFormat("MM/dd/yyyy");
        String dataFinal = formatador1.format(data);
        return dataFinal;
    }
}
